From 2fdf30186c69f2d2d40db3a148f4e8969b259d95 Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Thu, 15 Nov 2001 22:20:18 +0000 Subject: [PATCH] New function to get a GdkWindow to compare event->window to. Thu Nov 15 16:24:55 2001 Jonathan Blandford * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function to get a GdkWindow to compare event->window to. * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit the signal for lateral motion too, #64361 * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window arg as it is useless, #64137 --- ChangeLog | 11 ++++ ChangeLog.pre-2-0 | 11 ++++ ChangeLog.pre-2-10 | 11 ++++ ChangeLog.pre-2-2 | 11 ++++ ChangeLog.pre-2-4 | 11 ++++ ChangeLog.pre-2-6 | 11 ++++ ChangeLog.pre-2-8 | 11 ++++ docs/reference/gtk/tmpl/gtk-unused.sgml | 14 ---- docs/reference/gtk/tmpl/gtktextbuffer.sgml | 6 ++ docs/reference/gtk/tmpl/gtktextiter.sgml | 6 -- docs/reference/gtk/tmpl/gtktexttagtable.sgml | 6 ++ docs/reference/gtk/tmpl/gtktreemodel.sgml | 12 ++-- docs/reference/gtk/tmpl/gtktreemodelsort.sgml | 6 ++ docs/reference/gtk/tmpl/gtktreeselection.sgml | 6 ++ docs/reference/gtk/tmpl/gtktreeview.sgml | 6 ++ gtk/gtktreeview.c | 64 ++++++++++--------- gtk/gtktreeview.h | 1 - 17 files changed, 146 insertions(+), 58 deletions(-) diff --git a/ChangeLog b/ChangeLog index decbb736cf..e92cdfab61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index decbb736cf..e92cdfab61 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,14 @@ +Thu Nov 15 16:24:55 2001 Jonathan Blandford + + * gtk/gtktreeview.c (gtk_tree_view_get_bin_window): New function + to get a GdkWindow to compare event->window to. + + * gtk/gtktreeview.c (gtk_tree_view_move_cursor_left_right): emit + the signal for lateral motion too, #64361 + + * gtk/gtktreeview.c (gtk_tree_view_get_path_at_pos): remove window + arg as it is useless, #64137 + Thu Nov 15 16:07:42 2001 Owen Taylor * gtk/gtknotebook.c: Some small drawing fixes for scroll arrows. diff --git a/docs/reference/gtk/tmpl/gtk-unused.sgml b/docs/reference/gtk/tmpl/gtk-unused.sgml index 86e08b9c73..c417931a86 100644 --- a/docs/reference/gtk/tmpl/gtk-unused.sgml +++ b/docs/reference/gtk/tmpl/gtk-unused.sgml @@ -1158,12 +1158,6 @@ produce superscript and subscript. - - - - - - @@ -1178,14 +1172,6 @@ produce superscript and subscript. @GTK_TREE_SELECTION_SINGLE: @GTK_TREE_SELECTION_MULTI: - - - - - -@parent: -@priv: - diff --git a/docs/reference/gtk/tmpl/gtktextbuffer.sgml b/docs/reference/gtk/tmpl/gtktextbuffer.sgml index 8847b6c012..0c72d90755 100644 --- a/docs/reference/gtk/tmpl/gtktextbuffer.sgml +++ b/docs/reference/gtk/tmpl/gtktextbuffer.sgml @@ -23,6 +23,12 @@ types related to the text widget and how they work together. #GtkTextView, #GtkTextIter, #GtkTextMark + + + + + + diff --git a/docs/reference/gtk/tmpl/gtktextiter.sgml b/docs/reference/gtk/tmpl/gtktextiter.sgml index 1815bd9654..404451f604 100644 --- a/docs/reference/gtk/tmpl/gtktextiter.sgml +++ b/docs/reference/gtk/tmpl/gtktextiter.sgml @@ -20,12 +20,6 @@ types related to the text widget and how they work together. - - - - - - diff --git a/docs/reference/gtk/tmpl/gtktexttagtable.sgml b/docs/reference/gtk/tmpl/gtktexttagtable.sgml index 6727f3098d..bdae305c3b 100644 --- a/docs/reference/gtk/tmpl/gtktexttagtable.sgml +++ b/docs/reference/gtk/tmpl/gtktexttagtable.sgml @@ -21,6 +21,12 @@ types related to the text widget and how they work together. + + + + + + diff --git a/docs/reference/gtk/tmpl/gtktreemodel.sgml b/docs/reference/gtk/tmpl/gtktreemodel.sgml index c2a0f8eecf..ea67be9962 100644 --- a/docs/reference/gtk/tmpl/gtktreemodel.sgml +++ b/docs/reference/gtk/tmpl/gtktreemodel.sgml @@ -14,6 +14,12 @@ The tree interface used by #GtkTreeView #GtkTreeView, #GtkTreeStore, #GtkListStore + + + + + + @@ -36,12 +42,6 @@ The tree interface used by #GtkTreeView - - - - - - diff --git a/docs/reference/gtk/tmpl/gtktreemodelsort.sgml b/docs/reference/gtk/tmpl/gtktreemodelsort.sgml index 31dd65af57..59ecc5ada5 100644 --- a/docs/reference/gtk/tmpl/gtktreemodelsort.sgml +++ b/docs/reference/gtk/tmpl/gtktreemodelsort.sgml @@ -14,6 +14,12 @@ GtkTreeModelSort + + + + + + diff --git a/docs/reference/gtk/tmpl/gtktreeselection.sgml b/docs/reference/gtk/tmpl/gtktreeselection.sgml index 58fd239242..35a293cc83 100644 --- a/docs/reference/gtk/tmpl/gtktreeselection.sgml +++ b/docs/reference/gtk/tmpl/gtktreeselection.sgml @@ -14,6 +14,12 @@ GtkTreeSelection + + + + + + diff --git a/docs/reference/gtk/tmpl/gtktreeview.sgml b/docs/reference/gtk/tmpl/gtktreeview.sgml index b8480449e8..f9692b2e74 100644 --- a/docs/reference/gtk/tmpl/gtktreeview.sgml +++ b/docs/reference/gtk/tmpl/gtktreeview.sgml @@ -14,6 +14,12 @@ GtkTreeView + + + + + + diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index c36a7496d5..eb56900159 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -3497,7 +3497,6 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view, tree_view->priv->pressed_button = -1; gtk_tree_view_get_path_at_pos (tree_view, - tree_view->priv->bin_window, tree_view->priv->press_start_x, tree_view->priv->press_start_y, &path, @@ -6000,6 +5999,7 @@ gtk_tree_view_move_cursor_left_right (GtkTreeView *tree_view, cursor_tree, cursor_node, NULL); + g_signal_emit (G_OBJECT (tree_view), tree_view_signals[CURSOR_CHANGED], 0); } gtk_tree_view_clamp_column_visible (tree_view, tree_view->priv->focus_column); } @@ -8140,10 +8140,27 @@ gtk_tree_view_set_cursor (GtkTreeView *tree_view, } +/** + * gtk_tree_view_get_bin_window: + * @tree_view: A #GtkTreeView + * + * Returns the window that @tree_view renders to. This is used primarily to + * compare to event->window to confirm that the event on + * @tree_view is on the right window. + * + * Return value: A #GdkWindow, or %NULL when @tree_view hasn't been realized yet + **/ +GdkWindow * +gtk_tree_view_get_bin_window (GtkTreeView *tree_view) +{ + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), NULL); + + return tree_view->priv->bin_window; +} + /** * gtk_tree_view_get_path_at_pos: * @tree_view: A #GtkTreeView. - * @window: The #GdkWindow to check against. * @x: The x position to be identified. * @y: The y position to be identified. * @path: A pointer to a #GtkTreePath pointer to be filled in, or %NULL @@ -8151,22 +8168,20 @@ gtk_tree_view_set_cursor (GtkTreeView *tree_view, * @cell_x: A pointer where the X coordinate relative to the cell can be placed, or %NULL * @cell_y: A pointer where the Y coordinate relative to the cell can be placed, or %NULL * - * Finds the path at the point (@x, @y) relative to @window. If @window is - * %NULL, then the point is found relative to the widget coordinates. This - * function is expected to be called after an event, with event->window being - * passed in as @window. It is primarily for things like popup menus. If @path - * is non-%NULL, then it will be filled with the #GtkTreePath at that point. - * This path should be freed with gtk_tree_path_free(). If @column is non-%NULL, - * then it will be filled with the column at that point. @cell_x and @cell_y - * return the coordinates relative to the cell background (i.e. the - * @background_area passed to gtk_cell_renderer_render()). This function only - * works if @tree_view is realized. + * Finds the path at the point (@x, @y), relative to widget coordinates. That + * is, @x and @y are relative to an events coordinates. It is primarily for + * things like popup menus. If @path is non-%NULL, then it will be filled with + * the #GtkTreePath at that point. This path should be freed with + * gtk_tree_path_free(). If @column is non-%NULL, then it will be filled with + * the column at that point. @cell_x and @cell_y return the coordinates relative + * to the cell background (i.e. the @background_area passed to + * gtk_cell_renderer_render()). This function is only meaningful if @tree_view + * is realized. * * Return value: %TRUE if a row exists at that coordinate. **/ gboolean gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, - GdkWindow *window, gint x, gint y, GtkTreePath **path, @@ -8181,9 +8196,6 @@ gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, g_return_val_if_fail (tree_view != NULL, FALSE); g_return_val_if_fail (tree_view->priv->bin_window != NULL, FALSE); - if (window) - g_return_val_if_fail (window == tree_view->priv->bin_window, FALSE); - if (path) *path = NULL; if (column) @@ -8239,21 +8251,12 @@ gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, } } - if (window) - { - y_offset = _gtk_rbtree_find_offset (tree_view->priv->tree, - TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, y), - &tree, &node); - } - else - { - if (y < TREE_VIEW_HEADER_HEIGHT (tree_view)) - return FALSE; + if (y < TREE_VIEW_HEADER_HEIGHT (tree_view)) + return FALSE; - y_offset = _gtk_rbtree_find_offset (tree_view->priv->tree, - TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, y + tree_view->priv->vadjustment->value), - &tree, &node); - } + y_offset = _gtk_rbtree_find_offset (tree_view->priv->tree, + TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, y + tree_view->priv->vadjustment->value), + &tree, &node); if (tree == NULL) return FALSE; @@ -8690,7 +8693,6 @@ gtk_tree_view_get_dest_row_at_pos (GtkTreeView *tree_view, */ if (!gtk_tree_view_get_path_at_pos (tree_view, - tree_view->priv->bin_window, x, y, &tmp_path, &column, diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h index d6c56bd944..5e132658dc 100644 --- a/gtk/gtktreeview.h +++ b/gtk/gtktreeview.h @@ -217,7 +217,6 @@ void gtk_tree_view_get_cursor (GtkTreeView /* Layout information */ gboolean gtk_tree_view_get_path_at_pos (GtkTreeView *tree_view, - GdkWindow *window, gint x, gint y, GtkTreePath **path, -- 2.30.2